|
Программируем по-русски
|
Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку. Издатель Глагола
|
(******************************************************************************) (**) ОТДЕЛ ПроКомпл+; (****************************************************************************** * НАЗНАЧЕНИЕ: проверка вычислений с комплексными числами ******************************************************************************) ИСПОЛЬЗУЕТ Матем ИЗ "...\Отделы\Числа\", Компл ИЗ "...\Отделы\Числа\", Вывод ИЗ "...\Отделы\Обмен\"; ПОСТ АРГУМЕНТОВ = 20; (* число аргументов *) ВИД Функция = ЗАДАЧА(z1-,z2+:Компл.Вид); Вектор = РЯД АРГУМЕНТОВ+1 ИЗ Компл.Вид; (******************************************************************************) ЗАДАЧА Арифметика; ПЕР z,z1,z2:Компл.Вид; УКАЗ Вывод.Цепь('^*** Арифметика: доб, выч, умн, дел.^'); Компл.алгВид(1, 1,z1); Компл.алгВид(2,-1,z2); Вывод.ЧВещ(' Пусть z1 = (%5f;%5f), а z2 = (%5f;%5f), тогда:^', z1.x,z1.y,z2.x,z2.y); Компл.доб(z1,z2,z); Вывод.ЧВещ('z1 + z2 = (%5f;%5f)^',z.x,z.y,0,0); Компл.выч(z1,z2,z); Вывод.ЧВещ('z1 - z2 = (%5f;%5f)^',z.x,z.y,0,0); Компл.умн(z1,z2,z); Вывод.ЧВещ('z1 * z2 = (%5f;%5f)^',z.x,z.y,0,0); Компл.дел(z1,z2,z); Вывод.ЧВещ('z1 / z2 = (%5f;%5f)^',z.x,z.y,0,0) КОН Арифметика; (******************************************************************************) ЗАДАЧА Корень; ПЕР a,z,a1:Компл.Вид; n:ЦЕЛ; УКАЗ Компл.алгВид(-1,1,a); Вывод.Цепь('^*** 3 кубических корня из (-1;1)^'); Вывод.Цепь('n, z, z**(1/3), [z**(1/3)]**3^'); ОТ n:=0 ДО 2 ВЫП Компл.кор(a,n,3,z); Компл.степКЦ(z,3,a1); Вывод.ЧВещ('%d, (%5f;%5f), ',n,a.x,a.y,0); Вывод.ЧВещ('(%5f;%5f), (%5f;%5f)^',z.x,z.y,a1.x,a1.y) КОН КОН Корень; (******************************************************************************) ЗАДАЧА Оборот(прямИмя-,обрИмя-:ЦЕПЬ; прямФ,обрФ:Функция); ПЕР i:ЦЕЛ; z0:Вектор; y,z1:Компл.Вид; УКАЗ Компл.алгВид( 0, 0,z0[ 1]); Компл.алгВид( 0.5, 0.5,z0[ 2]); Компл.алгВид(-0.5, 0.5,z0[ 3]); Компл.алгВид(-0.5,-0.5,z0[ 4]); Компл.алгВид( 0.5,-0.5,z0[ 5]); Компл.алгВид( 1, 0,z0[ 6]); Компл.алгВид( 1, 1,z0[ 7]); Компл.алгВид( 0, 1,z0[ 8]); Компл.алгВид(-1, 1,z0[ 9]); Компл.алгВид(-1, 0,z0[10]); Компл.алгВид(-1,-1,z0[11]); Компл.алгВид( 0,-1,z0[12]); Компл.алгВид( 1,-1,z0[13]); Компл.алгВид( 5, 0,z0[14]); Компл.алгВид( 5, 3,z0[15]); Компл.алгВид( 0, 3,z0[16]); Компл.алгВид(-5, 3,z0[17]); Компл.алгВид(-5, 0,z0[18]); Компл.алгВид( 5,-3,z0[19]); Компл.алгВид( 0,-3,z0[20]); Вывод.Цепь('^z0, y='); Вывод.Цепь(прямИмя); Вывод.Цепь('(z0), z1='); Вывод.Цепь(обрИмя); Вывод.Цепь('(y)^'); ОТ i:=1 ДО АРГУМЕНТОВ ВЫП Вывод.ЧВещ('(%10.2e;%10.2e), ',z0[i].x,z0[i].y,0,0); прямФ(z0[i],y); ЕСЛИ Матем.код = 0 ТО Вывод.ЧВещ('(%10.2e;%10.2e), ',y.x,y.y,0,0); обрФ(y,z1); ЕСЛИ Матем.код = 0 ТО Вывод.ЧВещ('(%10.2e;%10.2e)^',z1.x,z1.y,0,0) ИНАЧЕ Вывод.ЧВещ('неопределено^',z1.x,z1.y,0,0) КОН ИНАЧЕ Вывод.ЧВещ('неопределено^',z1.x,z1.y,0,0) КОН КОН КОН Оборот; УКАЗ Арифметика; Корень; Оборот('ln' ,'exp',Компл.ln ,Компл.exp); Оборот('arcsin' ,'sin',Компл.arcsin ,Компл.sin); Оборот('arccos' ,'cos',Компл.arccos ,Компл.cos); Оборот('arctg' ,'tg' ,Компл.arctg ,Компл.tg ); Оборот('Arsh' ,'sh' ,Компл.Arsh ,Компл.sh ); Оборот('Arch' ,'ch' ,Компл.Arch ,Компл.ch ); Оборот('Arth' ,'th' ,Компл.Arth ,Компл.th ); Оборот('lnГ' ,'exp',Компл.lnГ ,Компл.exp) КОН ПроКомпл. ▲ Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com или Издателю Глагола:
|
|